package com.zjp.pojo;

import lombok.ToString;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ToString
public class HealthreportExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public HealthreportExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andReportingtimeIsNull() {
            addCriterion("reportingTime is null");
            return (Criteria) this;
        }

        public Criteria andReportingtimeIsNotNull() {
            addCriterion("reportingTime is not null");
            return (Criteria) this;
        }

        public Criteria andReportingtimeEqualTo(Date value) {
            addCriterion("reportingTime =", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeNotEqualTo(Date value) {
            addCriterion("reportingTime <>", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeGreaterThan(Date value) {
            addCriterion("reportingTime >", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("reportingTime >=", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeLessThan(Date value) {
            addCriterion("reportingTime <", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeLessThanOrEqualTo(Date value) {
            addCriterion("reportingTime <=", value, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeIn(List<Date> values) {
            addCriterion("reportingTime in", values, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeNotIn(List<Date> values) {
            addCriterion("reportingTime not in", values, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeBetween(Date value1, Date value2) {
            addCriterion("reportingTime between", value1, value2, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andReportingtimeNotBetween(Date value1, Date value2) {
            addCriterion("reportingTime not between", value1, value2, "reportingtime");
            return (Criteria) this;
        }

        public Criteria andCoughIsNull() {
            addCriterion("cough is null");
            return (Criteria) this;
        }

        public Criteria andCoughIsNotNull() {
            addCriterion("cough is not null");
            return (Criteria) this;
        }

        public Criteria andCoughEqualTo(String value) {
            addCriterion("cough =", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughNotEqualTo(String value) {
            addCriterion("cough <>", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughGreaterThan(String value) {
            addCriterion("cough >", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughGreaterThanOrEqualTo(String value) {
            addCriterion("cough >=", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughLessThan(String value) {
            addCriterion("cough <", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughLessThanOrEqualTo(String value) {
            addCriterion("cough <=", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughLike(String value) {
            addCriterion("cough like", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughNotLike(String value) {
            addCriterion("cough not like", value, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughIn(List<String> values) {
            addCriterion("cough in", values, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughNotIn(List<String> values) {
            addCriterion("cough not in", values, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughBetween(String value1, String value2) {
            addCriterion("cough between", value1, value2, "cough");
            return (Criteria) this;
        }

        public Criteria andCoughNotBetween(String value1, String value2) {
            addCriterion("cough not between", value1, value2, "cough");
            return (Criteria) this;
        }

        public Criteria andTemperatureIsNull() {
            addCriterion("temperature is null");
            return (Criteria) this;
        }

        public Criteria andTemperatureIsNotNull() {
            addCriterion("temperature is not null");
            return (Criteria) this;
        }

        public Criteria andTemperatureEqualTo(String value) {
            addCriterion("temperature =", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureNotEqualTo(String value) {
            addCriterion("temperature <>", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureGreaterThan(String value) {
            addCriterion("temperature >", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureGreaterThanOrEqualTo(String value) {
            addCriterion("temperature >=", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureLessThan(String value) {
            addCriterion("temperature <", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureLessThanOrEqualTo(String value) {
            addCriterion("temperature <=", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureLike(String value) {
            addCriterion("temperature like", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureNotLike(String value) {
            addCriterion("temperature not like", value, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureIn(List<String> values) {
            addCriterion("temperature in", values, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureNotIn(List<String> values) {
            addCriterion("temperature not in", values, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureBetween(String value1, String value2) {
            addCriterion("temperature between", value1, value2, "temperature");
            return (Criteria) this;
        }

        public Criteria andTemperatureNotBetween(String value1, String value2) {
            addCriterion("temperature not between", value1, value2, "temperature");
            return (Criteria) this;
        }

        public Criteria andDepartureareaIsNull() {
            addCriterion("departureArea is null");
            return (Criteria) this;
        }

        public Criteria andDepartureareaIsNotNull() {
            addCriterion("departureArea is not null");
            return (Criteria) this;
        }

        public Criteria andDepartureareaEqualTo(String value) {
            addCriterion("departureArea =", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaNotEqualTo(String value) {
            addCriterion("departureArea <>", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaGreaterThan(String value) {
            addCriterion("departureArea >", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaGreaterThanOrEqualTo(String value) {
            addCriterion("departureArea >=", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaLessThan(String value) {
            addCriterion("departureArea <", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaLessThanOrEqualTo(String value) {
            addCriterion("departureArea <=", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaLike(String value) {
            addCriterion("departureArea like", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaNotLike(String value) {
            addCriterion("departureArea not like", value, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaIn(List<String> values) {
            addCriterion("departureArea in", values, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaNotIn(List<String> values) {
            addCriterion("departureArea not in", values, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaBetween(String value1, String value2) {
            addCriterion("departureArea between", value1, value2, "departurearea");
            return (Criteria) this;
        }

        public Criteria andDepartureareaNotBetween(String value1, String value2) {
            addCriterion("departureArea not between", value1, value2, "departurearea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaIsNull() {
            addCriterion("arrivalArea is null");
            return (Criteria) this;
        }

        public Criteria andArrivalareaIsNotNull() {
            addCriterion("arrivalArea is not null");
            return (Criteria) this;
        }

        public Criteria andArrivalareaEqualTo(String value) {
            addCriterion("arrivalArea =", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaNotEqualTo(String value) {
            addCriterion("arrivalArea <>", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaGreaterThan(String value) {
            addCriterion("arrivalArea >", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaGreaterThanOrEqualTo(String value) {
            addCriterion("arrivalArea >=", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaLessThan(String value) {
            addCriterion("arrivalArea <", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaLessThanOrEqualTo(String value) {
            addCriterion("arrivalArea <=", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaLike(String value) {
            addCriterion("arrivalArea like", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaNotLike(String value) {
            addCriterion("arrivalArea not like", value, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaIn(List<String> values) {
            addCriterion("arrivalArea in", values, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaNotIn(List<String> values) {
            addCriterion("arrivalArea not in", values, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaBetween(String value1, String value2) {
            addCriterion("arrivalArea between", value1, value2, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andArrivalareaNotBetween(String value1, String value2) {
            addCriterion("arrivalArea not between", value1, value2, "arrivalarea");
            return (Criteria) this;
        }

        public Criteria andAddressIsNull() {
            addCriterion("address is null");
            return (Criteria) this;
        }

        public Criteria andAddressIsNotNull() {
            addCriterion("address is not null");
            return (Criteria) this;
        }

        public Criteria andAddressEqualTo(String value) {
            addCriterion("address =", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotEqualTo(String value) {
            addCriterion("address <>", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThan(String value) {
            addCriterion("address >", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThanOrEqualTo(String value) {
            addCriterion("address >=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThan(String value) {
            addCriterion("address <", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThanOrEqualTo(String value) {
            addCriterion("address <=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLike(String value) {
            addCriterion("address like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotLike(String value) {
            addCriterion("address not like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressIn(List<String> values) {
            addCriterion("address in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotIn(List<String> values) {
            addCriterion("address not in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressBetween(String value1, String value2) {
            addCriterion("address between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotBetween(String value1, String value2) {
            addCriterion("address not between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andUseridIsNull() {
            addCriterion("UserId is null");
            return (Criteria) this;
        }

        public Criteria andUseridIsNotNull() {
            addCriterion("UserId is not null");
            return (Criteria) this;
        }

        public Criteria andUseridEqualTo(Long value) {
            addCriterion("UserId =", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotEqualTo(Long value) {
            addCriterion("UserId <>", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThan(Long value) {
            addCriterion("UserId >", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThanOrEqualTo(Long value) {
            addCriterion("UserId >=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThan(Long value) {
            addCriterion("UserId <", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThanOrEqualTo(Long value) {
            addCriterion("UserId <=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridIn(List<Long> values) {
            addCriterion("UserId in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotIn(List<Long> values) {
            addCriterion("UserId not in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridBetween(Long value1, Long value2) {
            addCriterion("UserId between", value1, value2, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotBetween(Long value1, Long value2) {
            addCriterion("UserId not between", value1, value2, "userid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}